/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ufps.cuatro.util.base;

/**
 *
 * @author Carlos A. Torres C. 
 */
public class PropiedadComponenteBase extends ObjectBase{
    private static final long serialVersionUID = 2865665607242621423L;
    
    private int propiedad;
    private boolean codeSet;
    private boolean codeGet;
    private String extra;
    private ComponenteBase objComponenteBase;

    /**
     * 
     * @param objComponenteBase
     * @param id
     * @param propiedad
     * @param codeSet
     * @param codeGet
     * @param extra
     */
    public PropiedadComponenteBase(ComponenteBase objComponenteBase, int id, int propiedad, boolean codeSet, boolean codeGet, String extra) {
        super(id);
        this.propiedad = propiedad;
        this.codeSet = codeSet;
        this.codeGet = codeGet;
        this.extra = extra;
        this.objComponenteBase = objComponenteBase;
    }

    /**
     * 
     * @param objComponenteBase
     * @param id
     * @param propiedad
     * @param codeSet
     * @param codeGet
     */
    public PropiedadComponenteBase(ComponenteBase objComponenteBase, int id, int propiedad, boolean codeSet, boolean codeGet) {
        super(id);
        this.propiedad = propiedad;
        this.codeSet = codeSet;
        this.codeGet = codeGet;
        this.objComponenteBase = objComponenteBase;
        this.extra = "";
    }

    /**
     * 
     * @return
     */
    public boolean isCodeGet() {
        return codeGet;
    }

    /**
     * 
     * @param codeGet
     */
    public void setCodeGet(boolean codeGet) {
        this.codeGet = codeGet;
    }

    /**
     * 
     * @return
     */
    public boolean isCodeSet() {
        return codeSet;
    }

    /**
     * 
     * @param codeSet
     */
    public void setCodeSet(boolean codeSet) {
        this.codeSet = codeSet;
    }

    /**
     * 
     * @return
     */
    public String getExtra() {
        return extra;
    }

    /**
     * 
     * @param extra
     */
    public void setExtra(String extra) {
        this.extra = extra;
    }

    /**
     * 
     * @return
     */
    public int getPropiedad() {
        return propiedad;
    }

    /**
     * 
     * @param propiedad
     */
    public void setPropiedad(int propiedad) {
        this.propiedad = propiedad;
    }

    public ComponenteBase getObjComponenteBase() {
        return objComponenteBase;
    }

    public void setObjComponenteBase(ComponenteBase objComponenteBase) {
        this.objComponenteBase = objComponenteBase;
    }
    
    
    
    @Override
    public String toString() {        
        return this.objComponenteBase != null ? this.objComponenteBase.toString() + " Propiedad: " + this.propiedad: "Propiedad: " + this.propiedad;
    }        

    @Override
    public int compareTo(Object o) {
       try{
            PropiedadComponenteBase obj = (PropiedadComponenteBase) o;
            if(this.id > obj.id) {
                return 1;
            }
            else if(this.id < obj.id) {
                return -1;
            }
            else {
                return 0;
            }
        }catch(java.lang.NullPointerException ex){}
       return 0;
    }
    
    
}
